Colors {
    Colors.black = rgba(0.0, 0.0, 0.0, 1.0)
    Colors.gray = rgba(0.8, 0.8, 0.8, 1.0)
    Colors.darkgray = rgba(0.6, 0.6, 0.6, 1.0)
    Colors.red = rgba(1.0, 0.0, 0.0, 1.0)
    Colors.yellow = rgba(1.0, 1.0, 0.0, 1.0)
    Colors.orange = rgba(1.0, 0.6, 0.0, 1.0)
    Colors.lightorange = rgba(1.0, 0.6, 0.0, 0.25)
    Colors.green = rgba(0.0, 1.0, 0.0, 1.0)
    Colors.blue = rgba(0.0, 0.0, 1.0, 1.0)
    Colors.lightblue = rgba(0.0, 0.0, 1.0, 0.25)
    Colors.cyan = rgba(0.0, 1.0, 1.0, 1.0)
    Colors.purple = rgba(0.5, 0.0, 0.5, 1.0)
    Colors.white = rgba(1.0, 1.0, 1.0, 1.0)
    Colors.none = rgba(0.0, 0.0, 0.0, 0.0)
    Colors.lightblue2 = rgba(0.82, 0.88, 0.94, 1.0)
}

Set X {
    X.dx = OPTIMIZED
    X.dy = OPTIMIZED
    X.angle = OPTIMIZED

    X.shape = ImageTransform {
        -- path = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
        -- path = "right-bracket.svg"
	path = "https://cdn.eso.org/images/newsfeature/eso1907a.jpg"
        x = 0.0 -- OPTIMIZED
        y = 0.0 -- OPTIMIZED
        scaleX = 1.0
        scaleY = 1.0
        rotation = 0.0 -- OPTIMIZED
        strokeWidth = 0.0
        transform = andThen(rotate(X.angle), translate(X.dx, X.dy))
    }
}

Set `A`; Set `B` {
   LOCAL.objFn = encourage boundaryIntersect(`A`.shape, `B`.shape)
}

Set `A` {
    override `A`.shape.scaleX = 0.5
    override `A`.shape.scaleY = 0.5
}


Set `B` {
    -- override `B`.shape.x = 200.0
    -- override `B`.shape.y = 300.0
    override `B`.shape.path = "left-bracket.svg"
}
